#include "widgetcouleur.h"
#include "ui_widgetcouleur.h"
#include "iostream"
#include "palettecouleur.h"
#include "colorpicker.h"

using namespace std;

WidgetCouleur::WidgetCouleur(QWidget *parent) :
    QDockWidget(parent),
    ui(new Ui::WidgetCouleur)
{
    ui->setupUi(this);

    PaletteCouleur *palette= new PaletteCouleur(this);
    pixmap = QPixmap::fromImage(*(palette->getMonImage()));
    palette->setPixmap(pixmap);
    palette->move(40,10);
    palette->setFixedSize(190,127);


    ui->gridLayout->addWidget(palette,0,0,Qt::AlignCenter);

    QImage::Format format= QImage::Format_ARGB32; // valeurs par defaut
    image = new QImage(32,32,format);
    painter = new QPainter(image);
    painter->fillRect(image->rect(),QBrush(Qt::black));
    pixmap = QPixmap::fromImage(*image);
    label= new QToolButton(this);
    label->setIconSize(QSize(32,32));
    label->setIcon(pixmap);

    ui->gridLayout->addWidget(label,0,1,Qt::AlignCenter);

    connect(label, SIGNAL(clicked()), this, SLOT(afficherColorPicker()));

    setWindowTitle(tr("Couleur"));
}

WidgetCouleur::~WidgetCouleur()
{
    delete ui;
}

void WidgetCouleur::afficherColorPicker() {
    ColorPicker cp(couleur, this);
    int res = cp.exec();

    if(res == QDialog::Accepted) {
        cout << "Challenge accepted !" << endl;
    }
}


void WidgetCouleur::changeCouleur(QRgb color){
    this->couleur= color;
}

void WidgetCouleur::paintEvent(QPaintEvent *)
{
    painter->setPen(couleur);
    painter->eraseRect(image->rect());
    painter->fillRect(image->rect(),couleur);
    pixmap = QPixmap::fromImage(*image);
    label->setIcon(pixmap);
}

QRgb WidgetCouleur::getCouleur(){
    return this->couleur;
}
